﻿using RndMaterialDisposalService.Models.Entitys;
using RndMaterialDisposalService.Models.RequestModel;

namespace RndMaterialDisposalService.Services.Interface.MaterialDisposal
{
    /// <summary>
    /// 
    /// </summary>
    public interface IOrgConfigurationService
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="orgConfiguration"></param>
        /// <returns></returns>
        Task<int> AddOrgConfiguration(OrgConfigurationDto orgConfiguration);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="orgConfiguration"></param>
        /// <returns></returns>
        Task<int> UpdateOrgConfiguration(OrgConfigurationDto orgConfiguration);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sysId"></param>
        /// <returns></returns>
        Task<int> DeleteOrgConfiguration(Guid sysId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="orgManageReq"></param>
        /// <returns></returns>
        Task<(List<OrgConfigurationDto> list, int count)> GetOrgConfigurationList(OrgManagementReq orgManageReq);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="PageIndex"></param>
        /// <param name="PageSize"></param>
        /// <returns></returns>
        Task<(List<OrgConfigurationDto> list, int count)> GetOrgListByKeyword(string keyword, int PageIndex, int PageSize);
    }
}
